package grape.wx.service.mp.user.po;

import grape.common.service.common.IDictItem;
import grape.common.service.po.NormalBasePo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 公众号微信用户表
 * </p>
 *
 * @author yangwei
 * @since 2020-07-27
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("wx_mp_user")
public class MpUser extends NormalBasePo<MpUser> {


    public static enum DictHowFrom implements IDictItem{
        ADD_SCENE_SEARCH, //公众号搜索
        ADD_SCENE_ACCOUNT_MIGRATION, // 公众号迁移
        ADD_SCENE_QR_CODE, //         扫描二维码
        ADD_SCENE_PROFILE_LINK, // 图文页内名称点击
        ADD_SCENE_PROFILE_ITEM, //  图文页右上角菜单
        ADD_SCENE_PAID, // 支付后关注
        ADD_SCENE_WECHAT_ADVERTISEMENT, // 微信广告
        ADD_SCENE_PROFILE_CARD, // 名片分享
        ADD_SCENE_OTHERS, // 其他
        wx_mp_user_how_from_oauth2,
        ; // 网页授权获取用户信息

        @Override
        public String itemCode() {
            return this.name();
        }
    }

    private static final long serialVersionUID = 1L;

    /**
     * 公众号编码
     */
    private String appCode;

    /**
     * 公众号名称
     */
    private String appName;

    /**
     * 微信openId
     */
    private String openId;

    /**
     * 微信全局id
     */
    private String unionId;

    /**
     * 微信昵称
     */
    private String nickname;

    /**
     * 性别
     */
    private String genderDictId;

    /**
     * 城市区域id
     */
    private String cityAreaId;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 省区域id
     */
    private String provinceAreaId;

    /**
     * 省名称
     */
    private String provinceName;

    /**
     * 国家区域id
     */
    private String countryAreaId;

    /**
     * 国家名称
     */
    private String countryName;

    /**
     * 头像地址
     */
    private String avatar;

    /**
     * 语言
     */
    private String language;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 纬度
     */
    private String latitude;

    /**
     * 经纬度精度
     */
    private String precisions;

    /**
     * 地理位置描述
     */
    private String lacationDesc;

    /**
     * 是否关注
     */
    private Boolean isSubscribe;

    /**
     * 来源，方式
     */
    private String howFromDictId;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}
